const sources = [
  {
    type: "dir",
    path: "./server/src",
  },
  {
    type: "dir",
    path: "./client/src",
  },
  {
    type: "file",
    path: "./server/types/GameAPI.d.ts",
    src: "src/assets/type_definitions/GameAPI.d.ts",
  },
  {
    type: "file",
    path: "./server/types/GameEntity.d.ts",
    src: "src/assets/type_definitions/GameEntity.d.ts",
  },
  {
    type: "file",
    path: "./server/types/GamePlayer.d.ts",
    src: "src/assets/type_definitions/GamePlayer.d.ts",
  },
  {
    type: "file",
    path: "./client/types/ClientAPI.d.ts",
    src: "src/assets/type_definitions/ClientAPI.d.ts",
  },
  {
    type: "file",
    path: "./server/webpack.config.js",
    src: "src/assets/build_config/webpack.config-server.js",
  },
  {
    type: "file",
    path: "./client/webpack.config.js",
    src: "src/assets/build_config/webpack.config-client.js",
  },
  {
    type: "file",
    path: "./.gitignore",
    src: "src/assets/project_templates/dao3.gitignore",
  },
  {
    type: "dir",
    path: "./.vscode",
  },
  {
    type: "dir",
    path: "./shares",
  },
  {
    type: "file",
    path: "./.vscode/launch.json",
    src: "src/assets/ide_config/launch.json",
  },
  {
    type: "file",
    path: "./.vscode/mcp.json",
    src: "src/assets/ide_config/mcp.json",
  },
  {
    type: "file",
    path: "./.vscode/settings.json",
    src: "src/assets/ide_config/settings.json",
  },
  {
    type: "file",
    path: "./.vscode/extensions.json",
    src: "src/assets/ide_config/extensions.json",
  },
  {
    type: "file",
    path: "./.env",
    src: "src/assets/project_templates/env/dao3.env",
  },
  {
    type: "file",
    path: "./.env.example",
    src: "src/assets/project_templates/env/dao3.env.example",
  },
  {
    type: "file",
    path: "./env.d.ts",
    src: "src/assets/project_templates/env/env.d.ts",
  },
];

const tsSources = [
  {
    type: "file",
    path: "./server/src/App.ts",
    src: "src/assets/project_templates/index.ts",
  },
  {
    type: "file",
    path: "./client/src/clientApp.ts",
    src: "src/assets/project_templates/clientIndex.ts",
  },
  {
    type: "file",
    path: "./shares/sharesApp.ts",
    src: "src/assets/project_templates/sharesApp.ts",
  },
];

const ts_dao3config_npmPackage_server = [
  {
    type: "file",
    path: "./README.md",
    src: "src/assets/project_templates/README.md",
  },
  {
    type: "file",
    path: "./dao3.config.json",
    src: "src/assets/build_config/dao3config/dao3.config-npmPackage-server.json",
  },
];
const ts_dao3config_npmPackage_client = [
  {
    type: "file",
    path: "./README.md",
    src: "src/assets/project_templates/README.md",
  },
  {
    type: "file",
    path: "./dao3.config.json",
    src: "src/assets/build_config/dao3config/dao3.config-npmPackage-client.json",
  },
];
const js_dao3config_npmPackage_server = [
  {
    type: "file",
    path: "./README.md",
    src: "src/assets/project_templates/README.md",
  },
  {
    type: "file",
    path: "./dao3.config.json",
    src: "src/assets/build_config/dao3config/dao3.config-js-npmPackage-server.json",
  },
];
const js_dao3config_npmPackage_client = [
  {
    type: "file",
    path: "./README.md",
    src: "src/assets/project_templates/README.md",
  },
  {
    type: "file",
    path: "./dao3.config.json",
    src: "src/assets/build_config/dao3config/dao3.config-js-npmPackage-client.json",
  },
];

const ts_dao3config = [
  {
    type: "file",
    path: "./dao3.config.json",
    src: "src/assets/build_config/dao3config/dao3.config.json",
  },
];
const js_dao3config = [
  {
    type: "file",
    path: "./dao3.config.json",
    src: "src/assets/build_config/dao3config/dao3.config-js.json",
  },
];

const jsSources = [
  {
    type: "file",
    path: "./server/src/App.js",
    src: "src/assets/project_templates/index.ts",
  },
  {
    type: "file",
    path: "./client/src/clientApp.js",
    src: "src/assets/project_templates/clientIndex.ts",
  },
  {
    type: "file",
    path: "./shares/sharesApp.js",
    src: "src/assets/project_templates/sharesApp.ts",
  },
];

const tsTsconfigStrictSources = [
  {
    type: "file",
    path: "./client/tsconfig.json",
    src: "src/assets/build_config/tsconfig/tsconfig-client-strict.json",
  },
  {
    type: "file",
    path: "./server/tsconfig.json",
    src: "src/assets/build_config/tsconfig/tsconfig-server-strict.json",
  },
];
const tsTsconfigSources = [
  {
    type: "file",
    path: "./client/tsconfig.json",
    src: "src/assets/build_config/tsconfig/tsconfig-client.json",
  },
  {
    type: "file",
    path: "./server/tsconfig.json",
    src: "src/assets/build_config/tsconfig/tsconfig-server.json",
  },
];

const jsTsconfigStrictSources = [
  {
    type: "file",
    path: "./client/tsconfig.json",
    src: "src/assets/build_config/tsconfig/tsconfig-client-js-strict.json",
  },
  {
    type: "file",
    path: "./server/tsconfig.json",
    src: "src/assets/build_config/tsconfig/tsconfig-server-js-strict.json",
  },
];

const jsTsconfigSources = [
  {
    type: "file",
    path: "./client/tsconfig.json",
    src: "src/assets/build_config/tsconfig/tsconfig-client-js.json",
  },
  {
    type: "file",
    path: "./server/tsconfig.json",
    src: "src/assets/build_config/tsconfig/tsconfig-server-js.json",
  },
];

const i18nSources = [
  {
    type: "file",
    path: "./i18n/types/i18n.d.ts",
    src: "src/assets/project_templates/i18n/i18n.d.ts",
  },
  {
    type: "file",
    path: "./i18n/res/en/translation.json",
    src: "src/assets/project_templates/i18n/enTranslation.json",
  },
  {
    type: "file",
    path: "./i18n/res/zh-CN/translation.json",
    src: "src/assets/project_templates/i18n/zhCNTranslation.json",
  },
];

const ts_i18nSources = [
  {
    type: "file",
    path: "./i18n/index.ts",
    src: "src/assets/project_templates/i18n/i18n.ts",
  },
  {
    type: "file",
    path: "./client/src/clientApp.ts",
    src: "src/assets/project_templates/i18n/i18nClientApp.ts",
  },
  {
    type: "file",
    path: "./server/src/App.ts",
    src: "src/assets/project_templates/i18n/i18nApp.ts",
  },
];

const js_i18nSources = [
  {
    type: "file",
    path: "./i18n/index.js",
    src: "src/assets/project_templates/i18n/i18n.ts",
  },
  {
    type: "file",
    path: "./client/src/clientApp.js",
    src: "src/assets/project_templates/i18n/i18nClientApp.ts",
  },
  {
    type: "file",
    path: "./server/src/App.js",
    src: "src/assets/project_templates/i18n/i18nApp.ts",
  },
];

export {
  sources,
  jsSources,
  tsSources,
  jsTsconfigStrictSources,
  tsTsconfigStrictSources,
  js_dao3config_npmPackage_client,
  js_dao3config_npmPackage_server,
  ts_dao3config_npmPackage_client,
  ts_dao3config_npmPackage_server,
  ts_dao3config,
  js_dao3config,
  tsTsconfigSources,
  jsTsconfigSources,
  i18nSources,
  ts_i18nSources,
  js_i18nSources,
};
